本次搭建使用 Docker 的方式,仓库为 OpenWrt-Docker(OpenWrt-24.10 (PassWall & OpenClash),基于ImmortalWrt OpenWrt-24.10),以下为本地网络信息:
网关:192.168.71.1
NAS 所在IP:192.168.71.71
期望旁路由的地址:192.168.71.72
安装
使用 ssh 登录飞牛
1、打开网卡混杂模式,其中eth0根据ifconfig命令找到自己的本地网卡名称替换
1 | sudo ip link set enp1s0 promisc on |
2、创建名称为macvlan的虚拟网卡,并指定网关gateway、子网网段subnet、虚拟网卡的真实父级网卡parent(第一步中的本地网卡名称)
1 | docker network create -d macvlan --subnet=192.168.0.0/24 --gateway=192.168.0.1 -o parent=enp1s0 macnet |
上述的 subnet 和 gateway 地址是创建出来的地址情况,并非填写自己真实的网络。
3、查看虚拟网卡是否创建成功,成功的话能看到名称为“macnet”的虚拟网卡
1 | docker network ls |
4、拉取镜像,可以通过阿里云镜像提升镜像拉取速度
1 | docker pull registry.cn-hangzhou.aliyuncs.com/zzsrv/openwrt:latest |
5、创建容器并后台运行
1 | docker run --restart always --name openwrt -d --network macnet --privileged zzsrv/openwrt /sbin/init |
6、进入容器内部环境
1 | docker exec -it openwrt bash |
7、根据自己实际情况修改网络配置,修改完成后保存配置
1 | vi /etc/config/network |
8、退出容器内部环境,在宿主机环境执行重启容器命令
1 | docker container restart openwrt |
下面是我本地执行的情况,可作为参考:
查看刚刚创建出来的 docker 网络的信息
1 | sudo docker network inspect macnet |
1 | [ |
查看 /etc/config/network 的内容
1 | bash-5.2# cat /etc/config/network |
若不出意外,此时浏览器打开 http://192.168.71.72 即可访问到页面了。
OpenClash 配置
在服务 -> OpenClash -> 配置订阅中配置机场的地址,并设置自动更新

在覆写设置中设置自定义规则

最后开启服务

这里可能会失败很多次,需要反复去看运行日志进行调试。查看具体是什么错误。我就曾经出现过配置名称中带有斜线,导致服务不能正常启动的情况。
使用测试
路由器最好是设置两个 WIFI,一个走旁路由一个不走,这样可以灵活选择,对于电视等设备可以不走。对于手机,电脑等设备选择走旁路由。
将电脑的网关设置为旁路由的地址,例如我这里是 192.168.71.72。这里还可以选择在路由器里面设置,将路由器 DHCP 分配的网关和 DNS 都进行统一的配置。

访问 https://ip111.cn/ 进行 IP 测试,访问 goole,youtube 进行测试,能访问即成功!
